User devices, such as a mobile device, cellular phone, a personal digital assistant (PDA), a wireless modem, a wireless communication device, a handheld device, a laptop computer, a wireless local loop (WLL) station, a tablet computer, or the like, today are capable of communicating via a number of available distinct communication data links (also referred to herein as heterogeneous network links). For example, many user devices today are capable of communicating via many different network links such as a Long Term Evolution (LTE) or LTE-Advance (LTE-A) (also referred to as 4G), Code Division Multiple Access (CDMA) or Wideband CDMA (WCDMA) (also referred to as 3G), Global System for Mobile Communications (GSM) (also referred to as 2G), IEEE 802.11 (Wi-Fi), Bluetooth and often other links are available for sending and receiving data. This plethora of available communication links provides an opportunity to use the multiple data links to more optimally send and receive user's data. For example, one or more of the network links available can be selected in order to maximize throughput, minimize latency, increase reliability, minimize interference, maximize battery life and/or minimize data fees.
Conventional approaches to link selection have operated at the user device or as a local extension of the user device. These approaches provide access only to metrics that are available at the user device. Thus, conventional approaches generally do not see enough of the network to select links based on network conditions. For example, while a user device may select to use Wi-Fi instead of LTE whenever Wi-Fi is available with the underlying premise that Wi-Fi is a better or cheaper connection, such a decision would be better informed if the user device would receive from another device monitoring conditions within the network more complete information about the user experience associated with communicating data via each network link through the network to/from a remote endpoint.
Accordingly, there exists a need for methods, systems, and computer program products for communicating data selectively via heterogeneous communication network links.